home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 42 / Amiga Format AFCD42 (Issue 126, Aug 1999).iso / -serious- / programming / other / gui4cli / docs / changes_old < prev    next >
Encoding:
Text File  |  1999-05-14  |  22.1 KB  |  575 lines

  1.  
  2.   ================================================================
  3.   === VERSION 3.6 CHANGES ------------------------------------->>>
  4.   ================================================================
  5.  
  6.   Events & Commands :
  7.  
  8. - Event : xTIMER TIME|SINGLE|REPEAT TIME|INTERVAL ON|OFF
  9.   will provide you with accurate timing events - see the guide
  10.   for details.
  11.  
  12. - ClipBoard support for text clips is now provided for listviews.
  13.   o When you load a file called Clips:0 (or any number 0-255) then
  14.     the lv will load whatever is in that clipboard unit. 
  15.   o When you save a file whose file path starts with "CLIPS:" i.e.
  16.     something like Clips:3, the lv will be saved to the given
  17.     clipboard unit in correct iff format.
  18.   o Moreover listviews will load any IFF-FTXT file correctly.
  19.  
  20. - SHAREMENU GuiName - (Global command)
  21.   Will share the menus of the named gui file. When the menu is 
  22.   selected it will be as if the other gui's (the one which has the 
  23.   actual menu events in it) menu was selected and all commands 
  24.   attached to it will be executed.
  25.  
  26. - Menus will now accept many BARLABEL items.
  27.  
  28. - Now you can give '#This' as the gui file name, and it will
  29.   mean the current file - i.e. GuiOpen #This - will mean : open
  30.   the file that this command appears in. This gives you more 
  31.   independent code.
  32.  
  33. - CONTROL-R will now execute all xOnClose/Quit/Load commands
  34.   it encounters while Re-Loading a file. Note that your gui
  35.   will not re-open if there is no guiopen command in the 
  36.   xOnLoad event.
  37.  
  38. - RESINFO FontHeight ScreenWidth ScreenHeight - is a new Global 
  39.   command with which you can give some info to Gui4Cli to enable
  40.   it to resize the gui correctly on other people's systems.
  41.  
  42. - Worked around gadtools limitation by which when you move a 
  43.   listview with the scroller and after try to continue with the 
  44.   arrow keys, it snaps back to the last record you had clicked 
  45.   on - now Gui4Cli will guess the line and scroll correctly.
  46.   
  47.   ARexx :
  48.  
  49. - There is now a global variable named *REXXVAR which has
  50.   special meaning. You use it as you would any global variable
  51.   but when someone sends a rexx command to Gui4Cli from a
  52.   rexx program which has OPTIONS RESULTS declared, then the
  53.   contents of this variable will be returned and will be
  54.   available from withing arexx as variable RESULT. So...
  55.      >> SetVar  "*REXXVAR"  "'$mygui.gc/myvar'"
  56.   ..would put whatever is in $mygui.gc/myvar into RESULT.
  57.  
  58.   Note the use of the quotes: one set for arexx, another for
  59.   Gui4Cli (since $mygui.gc/myvar could be a string of words).
  60.  
  61. - If you set OPTIONS RESULTS you will now cause the Gui4Cli 
  62.   command you have sent from an ARexx program to be executed
  63.   synchronously. This has the advantage of returning a result.
  64.   Without OPTIONS RESULTS the execution is asynchronous.
  65.  
  66. - Also fixed some Gui4Cli<->ARexx communication errors..
  67.   You can now run a rexx program with a public port and have
  68.   it communicate back and forth with Gui4Cli without the
  69.   deadlocks that used to occur.
  70.  
  71.   C Programmers Interface :
  72.  
  73. - Have provided an include file with Gui4Cli internal
  74.   structures and set up a mechanism whereby you can communicate
  75.   with Gui4Cli, and in effect provide extensions to Gui4Cli's 
  76.   command set, as follows :
  77.  
  78.   - From outside programs -to-> Gui4Cli
  79.     a) Send message and LOCK Gui4Cli, look at it's internal
  80.        structures, manipulate variables, listviews etc, and then
  81.        unlock it again, and let it continue, or
  82.     b) Send command lines for it to execute (like rexx msgs)
  83.  
  84.   - From Gui4Cli -to-> outside programs
  85.     Use the new command :
  86.     > CALL PortName Command Arg1 Arg2... Arg6
  87.     to send special Gui4Cli messages containing commands
  88.     to outside programs, who should then process the commands
  89.     using, if they want, any of Gui4Cli's internal structures,
  90.     and give control back to Gui4Cli (maybe returning something)
  91.  
  92.   See the examples in the "Guis:Ext" directory for more info.
  93.  
  94.   IMPORTANT NOTE : 
  95.   - Changes have been made to the structures of the BETA version 
  96.     that was on my page !!! - Recompile or crash.
  97.  
  98.  Extensions :
  99.  
  100.   Two extensions can already be found in guis:ext :
  101.  
  102. - GCSound - a 8SVX sample player (mono only for now) with the
  103.   ability to load & play many samples simuiltaneously, change
  104.   speed & volume while playing etc - Full gui is available in
  105.   the same directory.
  106.  
  107. - LVFormat - various functions which act on the current listview
  108.   like : wordwrap, indent, justify etc
  109.  
  110.  New internal variables :
  111.  
  112.   $$SYS.AW  - Active Window Title (may or may not be a Gui4Cli window)
  113.   $$SYS.AS  - Active Screen title
  114.   $$SYS.ASN - Active Screen Name (if it's public)
  115.   $$SYS.FS  - Frontmost Screen Title 
  116.   $$SYS.FSN - Frontmost Screen Name (if it's public)
  117.   If you need other data (width etc) you can SetScreen the current 
  118.   gui to the name you want (no need to open it) and read the 
  119.   $$SRC.xx vars.
  120.  
  121.   $$SYS.TIME - the current time (ex: 10:30:25 - hh:mm:ss)
  122.   $$SYS.TS   - the seconds part of the above time (i.e. 25)
  123.   $$SYS.TM   - the minutes part (i.e. 30)
  124.   $$SYS.TH   - the Hours part (i.e. 10)
  125.  
  126.   $$SYS.DATE - the date (see below for formats)
  127.   - following available *only* for dd-mm-yy (CDN) format:
  128.   $$SYS.DD   - the Day part of the above date
  129.   $$SYS.DM   - the month part
  130.   $$SYS.DY   - the year part
  131.  
  132.   $$SYS.DAY  - the day of the week (i.e. Monday)
  133.  
  134.   By default the date format is DD-MM-YY (15-07-98)
  135.   You can change this with the SET command :
  136.   > SET DATEFORMAT number - where number can be:
  137.   0 = DOS format -> dd-mmm-yy  (15-Apr-98)
  138.   1 = INT format -> yy-mm-dd
  139.   2 = USA format -> mm-dd-yy
  140.   3 = CDN format -> dd-mm-yy (default)
  141.   NOTE : the $$SYS.DD/DM/DY vars aply *only* to CDN format!
  142.  
  143.   Bug fixes :
  144.  
  145. - Fixed 10 enforcer hits, only 1 of which was of any real danger,
  146.   and you can thank Giuseppe Chillemi for pointing them out to me.
  147.   Gui4Cli is now clean with Enforcer (until the next bug..)
  148.   Also fixed an enforcer hit in c:gui.
  149.  
  150. - Not actually a bug.. Now RUN will also receive a console which
  151.   will be opened every time something is RUN.
  152.  
  153. - Got the SAS 6.58 patch and recompiled, optimized and caught a
  154.   few other small bugs too..
  155.  
  156. - LVSearch will now stop at every string found - if there are many
  157.   instances of a string in a lv line. The $$search.pos etc internal 
  158.   vars will show the position & length correctly. ** fixed again **
  159.   
  160. - Fixed ReadVar trash if it read less than you asked for.
  161.  
  162. - xICON can now be setgad HIDE|SHOW (had forgoten to put it..)
  163.  
  164. - Fixed some GuiEditing graphics errors. 
  165. - Also xICON new positions will now be saved (again forgoten)
  166.  
  167. - SET DEBUGSTEP ON|OFF, will cause an easy requester to appear 
  168.   before every command is executed (in debug mode) so you can 
  169.   control execution (I used this for catching the enforcer bugs)
  170.  
  171. - Setwintitle will now work even if window is not open.
  172.  
  173. - Fixed a bug where messages returned from launches & pipes got
  174.   confused with messages replied from AREXX and could lock Gui4Cli.
  175.  
  176. - makedir will no long be confused if there is a / at the end
  177.  
  178. - Fixed bug reported by Chris Ralph, where LVINSERT increased
  179.   the total record count by 2 instead of 1
  180.  
  181.   ================================================================
  182.   === VERSION 3.5 CHANGES ------------------------------------->>>
  183.   ================================================================
  184.  
  185.   Mathematical Abilities :
  186.  
  187. - Added mathematical expression evaluation and floating point numbers.
  188.   You can now enclose an expression in brackets with a $ in front
  189.   and Gui4Cli will evaluate it. Variables can be included :
  190.      var = $(45*7.45+($OtherVar /25))
  191.      say 'The answer is: $($var *2)\n'
  192.   Moreover, inside the brackets you can use the math functions :
  193.   abs(), sin(), cos(), tan(), log(), ln(), exp(), 'pi', etc
  194.  
  195.   - BECAREFULL with variables..
  196.   You must leave a space or ')' or '(' or '\' after the var 
  197.   name otherwise Gui4Cli will not read the var name correctly.
  198.      say '$($var*2)\n'  <- is incorrect (the var name is "var*2")
  199.   Read more in "Important Topics"
  200.  
  201.   Database ListViews :
  202.  
  203. - ListViews can now have fields (or columns) if you load a special
  204.   type of DataBase file - i.e. a file saved in a special format.
  205.   This introduces new notions like fields (which are something like
  206.   variables) - Read about it in the Guide, in "Important Topics".
  207.  
  208. - LVSort will now also sort by field : LVSort %FieldName
  209.   All sorting is ascending i.e. from small to large
  210.  
  211.   DataBase ListView Commands:
  212.  
  213. - DBSUM ALL|SELECTED|UNSELECTED %FieldName ResVar
  214.   Will add all specified fields in a DB listview and place the 
  215.   result into ResVar.
  216.  
  217. - RECSORT %FieldName
  218.   Will sort the current record into a DB listview according to
  219.   the given field. To be used when you add or edit a record, instead
  220.   of having to sort the whole lv from scratch.
  221.  
  222.   New ListView Commands:
  223.  
  224. - LVClip CUT|COPY lines|-1 ADD|PASTE|INSERT gui ID
  225.   Will CUT or COPY the amount of lines specified (or all if -1) from 
  226.   the current LV (starting at the current record) and ADD or PASTE or
  227.   INSERT them (after the current record) into the destination LV given.
  228.  
  229. - LVSwitch Gui ID  -  Will switch the data of the current listview 
  230.   with the one specified. Everything else (IDs, gadget attributes,
  231.   lvmode etc) will remain the same.
  232.  
  233. - Added the following keywords to LVMULTI:
  234.   SHOW - will refresh the LV
  235.   ALL/NONE - select/deselect *all* lv items 
  236.  
  237. - LVMOVE 0 - will now refresh the LV display.
  238.  
  239. - If you give the escape code for the "concealed mode" in a listview,
  240.   the text will now be rendered in 3D (since I don't know what the hell 
  241.   concealed stands for and multiview ignores it anyway..)
  242.  
  243.   BTW : Its  <ESC>[8m -or- <ESC>[32;8m (for white on black shadow)
  244.  
  245.   Attributes to control gadgets :
  246.  
  247. - ATTR AtributeName Value - (a gadget modifier)
  248. - SETATTR Gui ID AtributeName Value - (a command)
  249.   can now be used to set various atributes of various gadgets, like
  250.   setting the field color & style in DataBase listviews, the 
  251.   distance between lv lines, etc..
  252.  
  253.   Variables :
  254.  
  255. - New (the last - I promise :) LOCAL variables which are declared
  256.   within the event they belong to, with the gadget modifier :
  257.      LOCALVAR  var1/var2/var3 etc..
  258.   These are valid *only* inside the event in which they are declared.
  259.  
  260. - Now you can use the new - VarName[start][length] - notation on
  261.   all types of variables (env: vars, LV fields, internal vars, normal 
  262.   and local vars).
  263.  
  264.   File requesters :
  265.  
  266. - You can now provide a default file together with the DirName 
  267.   (last argument) and it will be shown in the file gadget.
  268.  
  269. - Put a '#' char in front of the DirName you give, to force a
  270.   requester to open at this same dir every time.
  271.  
  272. - Requesters will no longer be confused by quoted strings.
  273.  
  274.   Various improvements :
  275.  
  276. - Mouse positions for WinOnMouse are now taken from IntuitionBase.
  277.   This allows you to pop-up guis at the mouse, when the command to
  278.   open the gui is sent from an other program.
  279.  
  280. - You can give <Guiscreen #ScreenName FRONT|BACK> now, using the 
  281.   actual ScreenName if you want, by putting a # character in front.
  282.  
  283. - You can now declare an xIcon as "" meaning that you don't want to
  284.   show it yet, or changeicon to "" making it disappear.
  285.  
  286. - Extract now has 2 new keywords :
  287.   HEX - will convert the number given into Hex notation
  288.   OCT - will convert it into octal notation
  289.  
  290. - DEBUG mode will no longer print out the GET:/SET: statements.
  291.   You can SET DEBUGVARS ON|OFF, if you prefer the old method.
  292.  
  293.   Bug fixes :
  294.  
  295. - If you try to act on a file whose dir has been changed, the Dir 
  296.   Listviews will now refresh the dir, check if the file still
  297.   exists and if so, they will go ahead and act on it. They used
  298.   to just refresh and stop. It's more intuitive like this.
  299.  
  300. - LVSave will now set $$Retcode if it fails: 
  301.   Can't open file = 10, nothing to save = 5.
  302.  
  303. - Fixed $$lv.tot which showed 1 record when in "No data" mode.
  304.  
  305. - LVs now gets updated if OFF, but not updated if HIDEn (even if no
  306.   redrawn given yet). 
  307.  
  308.   NOTE : It is *much* faster to HIDE an lv and act on it (with commands
  309.   like lvadd, lvput etc) and then SHOW it again, than to have the LV
  310.   updated continuously while actions are going on. When you show it 
  311.   again, you must "nudge" it into redrawing itself - with LVMULTI SHOW
  312.   or LVMOVE 0
  313.  
  314. - Fixed small bug in guirename (it was case sensitive)
  315.  
  316.  
  317.   ================================================================
  318.   === VERSION 3.4 CHANGES ------------------------------------->>>
  319.   ================================================================
  320.  
  321.   NEW COMMANDS :
  322.  
  323. - TEXTFILE FileName 
  324.   - will mark the start of a text file. Lines of text will be read in 
  325.   and writen to "FileName". Use "###" (3 hash characters) to mark the 
  326.   end of the text block. They MUST appear at the begining of a line. 
  327.   A TEXTFILE can appear anywhere in a gui.
  328.   Good for embedding arexx scripts or data for listviews etc..
  329.  
  330. - SEARCHVAR Variable String CI|CS FIRST|NEXT
  331.   Search a Variable for a string - FIRST occurrence, NEXT occur.. etc
  332.   Results can be read via internal variables:
  333.   - $$SEARCH.POS = contains the number of the character where the string
  334.       found begins (0 is the 1st character) - or "" if nothing found.
  335.   - $$SEARCH.LENGTH = the total length of the variable.
  336.  
  337. - REPVAR Variable OldString NewString CI|CS
  338.   Will replace all occurances of OldString in Variable with NewString
  339.   CS means case sensitive, CI not.
  340.  
  341. - LVREP OldString NewString CI|CS
  342.   Do the replacement on ALL the records of the current listview 
  343.  
  344. - You can now use ++ and -- on a variable, C style - i.e. ++var is the 
  345.   same as saying: counter var inc 1. Same for --var.
  346.  
  347. - IFEXISTS and WAIT now have a negative form, by puting a ~ character
  348.   in front of the name of the item you're looking for.
  349.   - IfExists PORT ~MyPort
  350.   will be TRUE if port "MyPort" does *not* exist.
  351.  
  352. - You can now hit Control-D in any window to start/stop debug.
  353.  
  354.   BUG FIXES :
  355.  
  356. - Fixed $$REXXRET which stoped working in V3.3 (a stupid error..)
  357.  
  358. - Inverted all the GadKey KeyBoard shortcuts : now a normal keypress 
  359.   increases a gadget whereas a shifted one decreases it (used to be oposite)
  360.  
  361. - Enabled binary chars in env variables, so that they can contain
  362.   multiple lines. If last line has a trailing \n it's removed.
  363.  
  364.  
  365.   ================================================================
  366.   === VERSION 3.3 CHANGES ------------------------------------->>>
  367.   ================================================================
  368.  
  369.   Nothing much..
  370.  
  371.   This version was released because Version 3.2 had a bug in it's
  372.   INSTALL routine.
  373.  
  374.   - Fixed a small bug in the LVInsert command which didn't increase
  375.     the $$lv.tot count and did not make the inserted rec current.
  376.  
  377.   - Added a whole lot of new file type checking (by Brian Jones)
  378.     Most types should now be recognised. Also added 1-2 guis.
  379.  
  380.  
  381.   ================================================================
  382.   === VERSION 3.2 CHANGES ------------------------------------->>>
  383.   ================================================================
  384.  
  385.   CHANGES AFFECTING GUIS OF PREVIOUS VERSIONS:
  386.  
  387.   Only one change, which will not greatly affect your guis :
  388.  
  389.   Now a gui's variables are considered to be PRIVATE by default, 
  390.   i.e. without having to previously issue the VARPATH command.
  391.   It's more straight forward this way.
  392.  
  393.   If you have any problems, just add the global command: 
  394.   - VARPATH '*' - to your guis. 
  395.   If you still have problems you must trace down the variables you 
  396.   want to have as Global, and put a * in front of them.
  397.  
  398.   HELP:
  399.  
  400.   Now help for gadgets is available through the gadget modifier :
  401.   >  GADHELP 'This is some help text'
  402.  
  403.   To turn the help system on/off you can hit the HELP key, or give 
  404.   the command SET HELP ON|OFF
  405.  
  406.   NEW EVENTS:
  407.  
  408. - xPIPE  PIPE:FileName  ON|OFF
  409.   will launch a new process which will open and monitor a pipe: file
  410.   and will send you any output that any program redirects to it in
  411.   the form of lines of text via the internal variable $$PIPE.TXT
  412.   - SetGad now has a new keyword CLEAN, used *only* for pipes.
  413.  
  414.   NEW COMMANDS:
  415.  
  416. - xLVINSERT RecordNumber string
  417.   will insert the given string *before* the given record. 
  418.   RecordNumber of -1 means the CURRENT record. 
  419.  
  420. - BREAKTASK TaskName CDEF (signals) signals a task named TaskName
  421.   with a given combination of signals - like if you used the Amigados
  422.   break & status commands together. Usefull for stopping programs.
  423.  
  424. - SET DEEPTRANS ON|OFF - setting DEEPTRANS OFF will stop Gui4Cli from
  425.   translating variables within variables - this will last for one
  426.   execution cycle. This comes useful in the filetype checking routines
  427.   which are now much faster.
  428.  
  429. - PARTREDRAW GuiName L T W H - will redraw only part of the window.
  430.   Use this if you're just changing some gadgets in one area of the
  431.   window and do not want a full redraw. It's easier on the eyes..
  432.  
  433. - SETGADVALUES GuiName - will store the values of all the gadgets of
  434.   a gui into their respective variables. This is usefull at the 
  435.   start of a gui, when you have to set the default values of your
  436.   variables.
  437.  
  438.   VISUAL EDITING IMPROVEMENTS:
  439.  
  440. - CONTROL-J while in GUI Visual Editing mode, will now clone the 
  441.   gadget in it's own window.
  442.  
  443. - A GRID is now available, which makes lining up the gadgets much
  444.   easier. By default the grid size is 1 which means "no grid".
  445.   You can set the grid size with "SET GRID 5" (5 is a good size..)
  446.  
  447. - Gui4Cli will now adjust the position of ghosted gadget you move 
  448.   around while editing, to keep it inside the window borders. This
  449.   does not effect inter-gui cloning which works as usual.
  450.  
  451. - Various small bugs were exterminated (see bug-fixes below).
  452.  
  453.   TEXT IMPROVEMENTS:
  454.  
  455. - CTEXT last argument (the mask for underline|bold|italic) now works...
  456.   Also, it has 2 more digits :
  457.   Digit #4, is the color number of the "shade" which the letters will be 
  458.             shaded with, producing a 3D effect.
  459.   Digit #5, is the size of the shade (defaults to 1)
  460.   You need not declare these two.. 
  461.  
  462. - Also in CTEXT, if you give -1 as the background color, the background
  463.   will not be disturbed. Useful for writing over an Image background..
  464.  
  465. - CTEXT, WINFONT and GADFONT now also recognise the following :
  466.   - #MONO    specifying the default Monospace font, and
  467.   - #SCREEN  specifying the Screen font, which is usually proportional.
  468.   It is best to use these two in GUIs which you want to distribute.
  469.  
  470.   LISTVIEWS:
  471.  
  472. - COLORED, fancy text can now be seen in listviews! (only WB 3.0+)
  473.   Listviews will now interpret and render all the console sequences 
  474.   which set text color and mode (bold etc). See "Important Topics".
  475.   (also read this text with it..)
  476.  
  477. - A new type of listview "SHOW" which is exactly like "TXT", except 
  478.   that the selected choice will remain highlighted.
  479.  
  480.   DIRECTORY LISTVIEWS:
  481.  
  482. - DIR ListViews will now show you the directory sizes next to the
  483.   dir name, if you issue a LVAction ..SIZE.. command.
  484.  
  485.   EXTENDED VARIABLE NOTATION:
  486.  
  487. - NORMAL variables now have extended notation:
  488.  
  489.   - Private    GuiName/VarName[start][length]
  490.   - Globals    *VarName[start][length]
  491.  
  492.   Apart from the VarName bit, all other components are optional.
  493.   Read all about it in "Important Topics"
  494.  
  495.   NEW INTERNAL VARIABLES:
  496.  
  497. - $$WIN.PATH will tell you the path of the current or infoed gui.
  498.   (same as extract gui guipath var)
  499.  
  500. - $$GAD.VAR is the name of the variable that the given gadget will
  501.   store it's value in.
  502.  
  503. - $$G4C.DEFSCREEN - The screen name which all guis get (default = '*')
  504. - $$G4C.OUTPUT - The default console output spec
  505. - $$G4C.FILEPATTERN - The default ASL requester file pattern
  506. - $$G4C.EDITOR - The default editor name (c:Ed)
  507. - $$G4C.GUIPATTERN - The dafault gui extension (#?.gc - for the requester)
  508. - $$G4C.GUILOADDIR - The dir that the G4C load requester will open at
  509.  
  510.   ARGUMENTS FOR ROUTINES:
  511.  
  512. - New and powerfull improvement (read "GOSUB/GUILOAD" in the guide):
  513.  
  514.   Commands which call other events (like Guiload which calls xOnLoad,
  515.   or GoSub which calls a routine) can now take up to 6 arguments which 
  516.   are passed to the routine the given command calls, in the form of 
  517.   Internal variables $$ARG.0 to $$ARG.5. -OR- (if defined in the 
  518.   event's command line) automatically converted to variables.
  519.  
  520.   $$ARG.TOT contains the actual number of arguments passed. 
  521.  
  522. - Furthermore, RETURN can also now return from the routine or xONLOAD
  523.   etc, with up to 6 more arguments, which are passed back to the 
  524.   calling GoSub or GuiOpen etc as internal vars $$RET.0 to $$RET.5.
  525.  
  526.   SCREENS:
  527.  
  528. - Up to now, the screen name that Gui4Cli used if no Screen had
  529.   been declared for a gui was "Workbench". Now it's the "*" character
  530.   which means "The Front Most Screen". i.e. now, your guis will open
  531.   by default on the front most screen.
  532.  
  533. - This default screen name can be changed with :
  534.   SET  DEFSCREEN  Workbench   (or whatever..)
  535.   Note : This is *not* the same as the OS's default screen..
  536.  
  537.   BUG FIXES:
  538.  
  539. - Fixed redrawing of windows when being resized which sometimes
  540.   left trash at the bottom of the window.
  541.  
  542. - UNLOADIMAGE which did not seem to work in version 3.1, is actually
  543.   called FREEIMAGE. (yes.. I'm not perfect.. it was a big suprise to 
  544.   me too..)
  545.  
  546. - Fixed some bugs in $$lv.rec and LVSearch/LVFind commands.
  547.  
  548. - Fixed some bugs in GuiEdit. The Cyclers/radios will now save correctly.
  549.   ** HOWEVER ** if you add a cycler or radio (by cloning it) and save the 
  550.   gui, you'll have to reload it before you can edit it again, because
  551.   these gads add lines to the gui and Gui4Cli will think it's an error.
  552.   Also fixed some other stuff..
  553.  
  554. - Fixed SetWinTitle command which effected the titles of other windows.
  555.  
  556. - Added a version string for the c:version command.
  557.  
  558. - Fixed extract EXT which did not remove quotes
  559.  
  560. - Optimised command linking when loading file - Loading should now be
  561.   faster by a nano-pico-millisecond or two...
  562.  
  563. - Fixed a bug with the initial size of the resizable borders which 
  564.   showed up when using the VisualPrefs program (which changes the screen
  565.   structure border sizes).
  566.  
  567.    ================================================================
  568.   History of previous versions donated to the National Museum of Modern
  569.   Art. They didn't want it either, so I printed it out, burned it and
  570.   danced Kartsilama on the ashes..
  571.   
  572.  
  573.  
  574.